package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

type Login struct {
	User string `form:"username" json:"user" uri:"user" xml:"user" binding:"required"`
	Pssword string `form:"password" json:"password" uri:"password" xml:"password" binding:"required"`
}

func main() {
	//创建路由
	r:=  gin.Default()
    r.POST("loginJSON", func(c *gin.Context) {
		// 声明接收的变量
		var json Login
		//解析JSON
		if err := c.ShouldBindJSON(json); err!=nil{
			c.JSON(http.StatusBadRequest,gin.H{"error": err.Error()})
			return
		}
		//表单绑定
		// Bind()默认解析并绑定form格式
		// 根据请求头中content-type自动推断
		//解析form
		if err := c.Bind(&json);err!=nil {
			c.JSON(http.StatusBadRequest,gin.H{"status": "304"})
			return
		}

		// Bind()默认解析并绑定form格式
		// 根据请求头中content-type自动推断
		//解析URL
		if err := c.BindUri(&json);err!=nil {
			c.JSON(http.StatusBadRequest,gin.H{"status": "304"})
			return
		}
		
		//判断业务逻辑
		if json.User!="root"||  json.Pssword != "admin"{
			c.JSON(http.StatusBadRequest,gin.H{"status": "304"})
			return
		}
		c.JSON(http.StatusOK,gin.H{"status": "200"})
	})
	r.Run(":8800")
}
